追加したカスタムな GitHub-hosted runner がシャットダウンされたので支出限度額を変更して対処してみた

追加したカスタムな GitHub-hosted runner がシャットダウンされたので支出限度額を変更して対処してみた

Clock Icon2024.07.23

こんにちは、製造ビジネステクノロジー部の若槻です。

GitHub-hosted runner(GitHub ホステッド ランナー)を使用すると、規定のランナーのほかに独自のアーキテクチャやスペックのランナーを追加して、GitHub Actions のジョブで利用できるようになります。
https://docs.github.com/ja/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners

今回は、追加したカスタムな GitHub-hosted runner がシャットダウンされたので支出限度額を変更することにより対処してみました。

環境情報

  • プライベートリポジトリ
  • GitHub Team

追加したランナーがシャットダウンされた

ランナーの管理は https://github.com/organizations/<Organization>/settings/actions/runners より行います。

カスタムな GitHub-hosted runner(以降、ランナー)の追加も同メニューから行えます。

次のような設定のランナーを作成してます。

しかし作成されたランナーは Shutdown というステータスとなりました。

メッセージによると spending limit(支出限度額)に達したことが原因であるとのことです。

Runners are shut down due to spending limit caps being reached. Please try raising your Actions spending limit to continue using these runners. See billing page for more details. If you’re still experiencing problems, reach out to our support.

(日本語訳)
ランナーは支出限度額に達したためシャットダウンされました。これらのランナーを引き続き使用するには、アクションの支出限度額を引き上げてみてください。詳細については、請求ページを参照してください。引き続き問題が発生する場合は、サポートにお問い合わせください。

ランナー一覧上の表示はこのようになっています。

ここでシャットダウン中の上記ランナーを使用した場合の挙動を確認してみます。

以下のワークフローをリポジトリに追加します。

.github/workflows/test.yml
name: Larger runnner test

on: workflow_dispatch

jobs:
  my-job:
    runs-on:
      labels: ARM64_Ubuntu2404_2core
    steps:
      - name: Measure memory size
        run: free -m
      - name: Check architecture type
        run: uname -m

ワークフローを手動トリガーにより開始します。

するとしばらく待機してもワークフローのジョブ実行がWaiting for a runner to pick up this job...となり開始されません。

最終的にはワークフロー実行を手動でキャンセルする必要がありました。

このようにシャットダウンされたランナーはワークフローのジョブで使用できないことが確認できました。

支出限度額を上げてみる

それでは支出限度額を上げたらランナーが利用可能となるのか確認してみます。

https://github.com/organizations/<Organization>/settings/billing/spending_limitを見ると、「Limit spending」が0.00ドルとなっていました。このため追加したランナーが即座にシャットダウンされたようです。

1.00ドルに変更して保存します。

支出限度額を上げて1分ほど待つと、先ほどまでシャットダウンだったランナーのステータスが Readyとなりました。

また先ほど実行をキャンセルしたワークフローを再実行すると、今度はランナーが利用可能となり、ジョブが実行されました。

おわりに

追加した GitHub-hosted runner がシャットダウンされたので支出限度額を変更して対処してみました。

下記ドキュメントによると、標準の GitHub-hosted runner は一定の無料枠がありますが、カスタムの GitHub-hosted runner を利用する場合は常に課金されます。それによって今回のような挙動となったようです。
https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions

なので、GitHub Actions の利用が無料枠に収まっている場合は、例えばリソース消費を抑える目的で Arm アーキテクチャのカスタムなランナーを使用すると、逆に課金額が大きくなる場合があります。

よって今回試したようなカスタムの GitHub-hosted runner の利用が有効となるのは、コスト削減ではなく、Arm アーキテクチャでビルドを行う必要があったり、スペックを上げてジョブ実行を高速化したい場合などになるのではないでしょうか。

以上

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.